home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / schema / schemasp.frm < prev    next >
Text File  |  1996-04-13  |  7KB  |  253 lines

  1. VERSION 4.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "SchemaSpy"
  4.    ClientHeight    =   4140
  5.    ClientLeft      =   1140
  6.    ClientTop       =   1515
  7.    ClientWidth     =   6690
  8.    Height          =   4830
  9.    Left            =   1080
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   4140
  12.    ScaleWidth      =   6690
  13.    Top             =   885
  14.    Width           =   6810
  15.    WindowState     =   2  'Maximized
  16.    Begin VB.ListBox List3 
  17.       Height          =   3765
  18.       Left            =   6420
  19.       TabIndex        =   5
  20.       Top             =   765
  21.       Width           =   2760
  22.    End
  23.    Begin VB.ListBox List2 
  24.       Height          =   3765
  25.       Left            =   3435
  26.       TabIndex        =   4
  27.       Top             =   780
  28.       Width           =   2760
  29.    End
  30.    Begin VB.ListBox List1 
  31.       Height          =   3765
  32.       Left            =   450
  33.       TabIndex        =   3
  34.       Top             =   765
  35.       Width           =   2760
  36.    End
  37.    Begin VB.Label Label5 
  38.       AutoSize        =   -1  'True
  39.       Caption         =   "Double-Click Table Name for Fields and Index List"
  40.       Height          =   195
  41.       Left            =   480
  42.       TabIndex        =   7
  43.       Top             =   4740
  44.       Width           =   3525
  45.    End
  46.    Begin VB.Label Label4 
  47.       AutoSize        =   -1  'True
  48.       BeginProperty Font 
  49.          name            =   "MS Sans Serif"
  50.          charset         =   0
  51.          weight          =   700
  52.          size            =   9.75
  53.          underline       =   0   'False
  54.          italic          =   0   'False
  55.          strikethrough   =   0   'False
  56.       EndProperty
  57.       Height          =   240
  58.       Left            =   720
  59.       TabIndex        =   6
  60.       Top             =   75
  61.       Width           =   75
  62.    End
  63.    Begin VB.Label Label3 
  64.       Caption         =   "Indexes"
  65.       Height          =   225
  66.       Left            =   6390
  67.       TabIndex        =   2
  68.       Top             =   480
  69.       Width           =   1815
  70.    End
  71.    Begin VB.Label Label2 
  72.       Caption         =   "Fields (Type and size)"
  73.       Height          =   225
  74.       Left            =   3450
  75.       TabIndex        =   1
  76.       Top             =   480
  77.       Width           =   1890
  78.    End
  79.    Begin VB.Label Label1 
  80.       Caption         =   "Tables"
  81.       Height          =   195
  82.       Left            =   495
  83.       TabIndex        =   0
  84.       Top             =   510
  85.       Width           =   2160
  86.    End
  87.    Begin MSComDlg.CommonDialog CommonDialog1 
  88.       Left            =   8295
  89.       Top             =   4485
  90.       _Version        =   65536
  91.       _ExtentX        =   847
  92.       _ExtentY        =   847
  93.       _StockProps     =   0
  94.       Copies          =   2
  95.       DefaultExt      =   "mdb"
  96.       DialogTitle     =   "CD1"
  97.       Filter          =   "MSAccess  (*.mdb)|*.mdb"
  98.       FontSize        =   10
  99.       InitDir         =   "C:"
  100.    End
  101.    Begin VB.Menu MenuFile 
  102.       Caption         =   "&File"
  103.       Begin VB.Menu OpenMenu 
  104.          Caption         =   "&Open"
  105.       End
  106.       Begin VB.Menu S1 
  107.          Caption         =   "-"
  108.       End
  109.       Begin VB.Menu PrintMenu 
  110.          Caption         =   "&Print"
  111.       End
  112.       Begin VB.Menu PrintAllMenu 
  113.          Caption         =   "Print &All"
  114.       End
  115.       Begin VB.Menu S2 
  116.          Caption         =   "-"
  117.       End
  118.       Begin VB.Menu ExitMenu 
  119.          Caption         =   "E&xit"
  120.       End
  121.    End
  122. End
  123. Attribute VB_Name = "Form1"
  124. Attribute VB_Creatable = False
  125. Attribute VB_Exposed = False
  126. Public DB As Database
  127. Public dbName As String
  128. Public tbldef As TableDef
  129. Public fld As Field
  130. Public Indx As Index
  131.  
  132. Private Sub OpenTheDataBase()
  133.     dbName = CommonDialog1.filename
  134.     Label4.Caption = "Schema for " & dbName
  135.     Set DB = DBEngine.OpenDatabase(dbName)
  136. End Sub
  137.  
  138. Private Sub SetupDataFields()
  139.     List2.Clear
  140.     List3.Clear
  141.     OpenTheDataBase
  142.     For Each tbldef In DB.TableDefs
  143.         If tbldef.Name = List1.Text Then
  144.             For Each fld In tbldef.Fields
  145.                 a$ = fld.Name & " "
  146.                 Select Case fld.Type
  147.                     Case 8: a$ = a$ & ":    Date / Time"
  148.                     Case 10: a$ = a$ & ":   Text " & fld.Size
  149.                     Case 12: a$ = a$ & ":   Memo"
  150.                     Case 1: a$ = a$ & ":    Yes / No"
  151.                     Case 3: a$ = a$ & ":    Integer"
  152.                     Case 4: a$ = a$ & ":    Long"
  153.                     Case 5: a$ = a$ & ":    Currency"
  154.                     Case 6: a$ = a$ & ":    Single"
  155.                     Case 7: a$ = a$ & ":    Double"
  156.                     Case 2: a$ = a$ & ":    Byte"
  157.                     Case 11: a$ = a$ & ":   Long Binary"
  158.                 End Select
  159.                 List2.AddItem a$
  160.             Next
  161.             For Each Indx In tbldef.Indexes
  162.                 List3.AddItem Indx.Name
  163.             Next
  164.         End If
  165.     Next
  166. End Sub
  167.  
  168. Private Sub SetupDataTables()
  169.     List1.Clear
  170.     List2.Clear
  171.     List3.Clear
  172.     OpenTheDataBase
  173.     For Each tbldef In DB.TableDefs
  174.         If InStr(tbldef.Name, "MSys") = 0 Then _
  175.             List1.AddItem tbldef.Name
  176.     Next
  177. End Sub
  178.  
  179. Private Sub ExitMenu_Click()
  180.     Unload Me
  181.     End
  182. End Sub
  183.  
  184. Private Sub Form_Unload(Cancel As Integer)
  185.     Close
  186. End Sub
  187.  
  188. Private Sub List1_DblClick()
  189.     SetupDataFields
  190. End Sub
  191.  
  192. Private Sub OpenMenu_Click()
  193.     CommonDialog1.ShowOpen
  194.     SetupDataTables
  195. End Sub
  196.  
  197. Private Sub PrintAllMenu_Click()
  198.     Printer.Print "Schema of " & dbName
  199.     Printer.Print
  200.     OpenTheDataBase
  201.     For Each tbldef In DB.TableDefs
  202.         If InStr(tbldef.Name, "MSys") = 0 Then
  203.             Printer.Print tbldef.Name
  204.             Printer.Print
  205.             For Each fld In tbldef.Fields
  206.                 a$ = Chr$(9) & fld.Name & Chr$(9)
  207.                 Select Case fld.Type
  208.                     Case 8: a$ = a$ & ":    Date / Time"
  209.                     Case 10: a$ = a$ & ":   Text " & fld.Size
  210.                     Case 12: a$ = a$ & ":   Memo"
  211.                     Case 1: a$ = a$ & ":    Yes / No"
  212.                     Case 3: a$ = a$ & ":    Integer"
  213.                     Case 4: a$ = a$ & ":    Long"
  214.                     Case 5: a$ = a$ & ":    Currency"
  215.                     Case 6: a$ = a$ & ":    Single"
  216.                     Case 7: a$ = a$ & ":    Double"
  217.                     Case 2: a$ = a$ & ":    Byte"
  218.                     Case 11: a$ = a$ & ":   Long Binary"
  219.                 End Select
  220.                 Printer.Print a$
  221.             Next
  222.         End If
  223.         Printer.Print
  224.         On Error GoTo done
  225.         For Each Indx In tbldef.Indexes
  226.                 Printer.Print Chr$(9) & Indx.Name
  227.         Next
  228.     Next
  229. done:
  230.     Printer.EndDoc
  231. End Sub
  232.  
  233. Private Sub Tables_DblClick()
  234.     SetupDataFields
  235. End Sub
  236.  
  237. Private Sub PrintMenu_Click()
  238.     Printer.Print "Schema for " & dbName
  239.     Printer.Print "Table " & List1.Text
  240.     Printer.Print
  241.     For j = 0 To List2.ListCount - 1
  242.         List2.ListIndex = j
  243.         Printer.Print Chr$(9) & List2.Text
  244.     Next
  245.     Printer.Print
  246.     Printer.Print "Indexes"
  247.     For j = 0 To List3.ListCount - 1
  248.         List3.ListIndex = j
  249.         Printer.Print Chr$(9) & List3.Text
  250.     Next
  251.     Printer.EndDoc
  252. End Sub
  253.